#include "VentanaPrincipal.h"
#include <stdexcept>
#include <gtkmm/menuitem.h>


VentanaPrincipal::VentanaPrincipal(Glib::RefPtr<Gtk::Builder> b, std::string nomMenuItemSalida){
	// Recupera la ventana Ppal
	this->_pVentanaPpal = 0;
	b->get_widget("WinMain", this->_pVentanaPpal);

	// El menuItem al que conectar la señal de salida
	Gtk::MenuItem* pMenuItem = 0;
	b->get_widget(nomMenuItemSalida, pMenuItem);

	// Chequea que todo exista
	if (!this->_pVentanaPpal) throw std::runtime_error("No existe la ventana principal");
	if (!pMenuItem) throw std::runtime_error("No se encontró '" +nomMenuItemSalida+ "'");

	// Conecta la signal de salida
	pMenuItem->signal_activate().connect( sigc::mem_fun(*this, &VentanaPrincipal::salir) );
}


VentanaPrincipal::~VentanaPrincipal(){
}


// Cierra la ventana
void VentanaPrincipal::salir(){
	this->_pVentanaPpal->hide();
}


Gtk::Window& VentanaPrincipal::getMainWindow(){
	return *this->_pVentanaPpal;
}


